﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SpeakTechnology.AccessToDates;
namespace SpeakTechnology.LogicOfBussiness
{
    class C_Product
    {
     public static bool SEARCHP(string Name,string brand)
        {

            BodegaEntities1 db = new BodegaEntities1();
              return  db.Producto.Any(p => p.Nombre == Name);
              return db.Marca.Any(m => m.Marca1 == brand);
            
        }
     

        public static Producto Query(string Name)
        {

            BodegaEntities1 db = new BodegaEntities1();
               return  db.Producto.SingleOrDefault(p => p.Nombre == Name);    
        }
        public static Producto ModifyUser(Producto user) 
        {
            BodegaEntities1 db = new BodegaEntities1();
            db.SaveChanges();
            return user;
        }

        public bool Save(string Name, string Quantity, string Category, string Price, string brand) 
        {
           
            if (SEARCHP(Name,brand) == true)
            {
                return false;
            }
           
            else
            {
                BodegaEntities1 db = new BodegaEntities1(); 
                    int pre = Convert.ToInt32(Price);
                    int cat = Convert.ToInt32(Quantity);
                    Categoria cate=new Categoria();
                    Marca ma = new Marca();
                    Producto pro = new Producto
                    {
                        Nombre= Name,  
                        Cantidad = cat,
                        ID_categoria=cate.ID_categoria,
                        Precio = pre,
                        ID_marca=ma.ID_marca
                    };
                     Categoria catee= new Categoria
                    {
                        Categoria1=Category
                    };
                     Marca MA = new Marca 
                     {
                         Marca1=brand
                     };
                     db.Marca.Add(MA);
                    db.Categoria.Add(catee);
                    db.Producto.Add(pro);
                    db.SaveChanges();
            }
            
            return true;
        }
        public bool UPDATE(string Name,string Quantity,string Category, string Price) 
        {
                BodegaEntities1 db = new BodegaEntities1();
                Producto pro = db.Producto.FirstOrDefault(a => a.Nombre == Name);
                pro.Cantidad = Convert.ToInt32(Quantity);
                pro.Precio = Convert.ToInt32(Price);
               
                db.SaveChanges(); 
            
            return true;
        }
        public bool DELETE(string Name,string Quantity, string Category, string Price,string brand)
        {

            BodegaEntities1 db = new BodegaEntities1();
            Producto pro = db.Producto.FirstOrDefault(a => a.Nombre == Name);
            pro.Nombre = Name;
            pro.Cantidad = Convert.ToInt32(Quantity);
            pro.Categoria.Categoria1 = Category;
            pro.Precio = Convert.ToInt32(Price);
            pro.Marca.Marca1 = brand;
            Categoria cat = db.Categoria.FirstOrDefault(a => a.Categoria1 == Category);
            Marca ma = db.Marca.FirstOrDefault(m => m.Marca1 == brand);
            db.Marca.Remove(ma);
            db.Categoria.Remove(cat);
            db.Producto.Remove(pro);
            db.SaveChanges();
            return true;
            
        }

    }
}